package team.nine.kuaichezuche.repository;

import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import team.nine.kuaichezuche.model.VehicleInfo;

import java.util.List;

/**
 * 车辆信息数据访问接口，用于操作vehicle_info表
 */
@Repository
public interface VehicleInfoRepository extends JpaRepository<VehicleInfo, Integer> {

    /**
     * 根据品牌查询车辆信息
     * @param brand 品牌名称
     * @return 符合条件的车辆信息列表
     */
    List<VehicleInfo> findByBrand(String brand);

    /**
     * 根据车型查询车辆信息
     * @param model 车型名称
     * @return 符合条件的车辆信息列表
     */
    List<VehicleInfo> findByModel(String model);

    /**
     * 根据动力类型查询车辆信息
     * @param powerType 动力类型
     * @return 符合条件的车辆信息列表
     */
    List<VehicleInfo> findByPowerType(VehicleInfo.PowerType powerType);

    /**
     * 根据品牌和车型查询车辆信息
     * @param brand 品牌名称
     * @param model 车型名称
     * @return 符合条件的车辆信息列表
     */
    List<VehicleInfo> findByBrandAndModel(String brand, String model);

    /**
     * 获取所有车辆信息（分页）
     * @param pageable 分页参数
     * @return 车辆信息分页结果
     */
    Page<VehicleInfo> findAll(Pageable pageable);
}